<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">

<ui:composition template="/_template.xhtml">
	
	<ui:define name="titulo">
		Manutenção de Produtos
	</ui:define>

	<ui:define name="corpo">
		
		<p:messages id="msgs"/>
		<h:form id="cadastro">
			
			<h2>
				<h:outputText value="Novo Produto"
					rendered="#{empty produtoBean.produto.id}" />
			</h2>
			<h2>
				<h:outputText value="Editar Produto"
					rendered="#{not empty produtoBean.produto.id}" />
			</h2>


			<p:fieldset legend="Dados do Produto">
				
				<h:panelGrid columns="2">
					<p:outputLabel value="Nome: " for="nome" />
					<p:inputText id="nome" value="#{produtoBean.produto.nome}">
						<f:validator validatorId="comecaComMaiscula"/>
					</p:inputText>
					
					<p:outputLabel value="Descrição: " for="descricao" />
					<p:editor id="descricao" value="#{produtoBean.produto.descricao}" />
					
					<p:outputLabel value="Preço: " for="preco" />
					<p:inputText id="preco" value="#{produtoBean.produto.preco}" required="true"
					    requiredMessage="Preço obrigatório" validatorMessage="O valor mínimo é 0.50">
						<f:validateDoubleRange minimum="0.50"/>
					</p:inputText>
					
					<h:commandButton value="Gravar" action="#{produtoBean.grava}">
						<f:ajax execute="@form" render=":cadastro :listagem :msgs" />
					</h:commandButton>
					
					<h:commandButton value="Cancelar"
						action="produto"
						update="@form"
						immediate="true"
						rendered="#{not empty produtoBean.produto.id}" />
				</h:panelGrid>
			</p:fieldset>
		</h:form>

		<h2>Listagem de Produtos</h2>

		<h:form id="listagem">
			<p:dataTable value="#{produtoBean.dataModel}" var="produto" paginator="true" 
				rows="5" lazy="true">
				<p:column headerText="Nome">
				    #{produto.nome}
				</p:column>
				<p:column headerText="Descrição">
					<h:outputText value="#{produto.descricao}" escape="false"/>
				</p:column>
				<p:column headerText="Preço">
					#{produto.preco}
				</p:column>
				<p:column headerText="Ações">
					<h:commandLink value="Remover"
						action="#{produtoBean.remove(produto)}">
						<f:ajax render="@form" />
					</h:commandLink>
			 		#{' '}
					<h:commandLink value="Alterar">
						<f:setPropertyActionListener value="#{produto}"
							target="#{produtoBean.produto}" />
						<f:ajax execute="@form" render=":cadastro" />
					</h:commandLink>
				</p:column>
			</p:dataTable>
		</h:form>

	</ui:define>

</ui:composition>
</html>